ISSE_arr_update =
{
	private["_arr", "_key", "_val", "_upd", "_i"];
	_arr = _this select 0;
	_key = _this select 1;
	_val = _this select 2;
	_upd = false;
	
	for [{_i=0}, {_i < (count _arr)}, {_i=_i+1}] do 
	{
		if ( ((_arr select _i) select 0) == _key ) exitWith 
		{
			(_arr select _i) SET [1, _val];	
			_upd = true;
		};
	};

	if (!_upd) then
	{
		_arr = _arr + [ [_key, _val] ];
	};

	_arr
};
	
ISSE_arr_length = 
{
	(count _this)
};

ISSE_arr_keys = 
{
	private["_result", "_i"];
	_result = [];
	
	for [{_i=0}, {_i < (count _this)}, {_i=_i+1}] do 
	{
		_result = _result + [ ((_this select _i) select 0)];
	};
_result
};

ISSE_arr_values = 
{
	private["_result", "_i"];
	_result = [];
	
	for [{_i=0}, {_i < (count _this)}, {_i=_i+1}] do 
	{	
	_result = _result + [ ((_this select _i) select 1)];
	};
_result
};

ISSE_arr_hasKey = 
{								
	((_this select 1) in ((_this select 0) call ISSE_arr_keys))
};

ISSE_arr_delete = 
{				
private["_arr", "_key", "_del", "_i"];								
_arr = _this select 0;				
_key = _this select 1;																

for [{_i=0}, {_i < (count _arr)}, {_i=_i+1}] do 
{	
					
if ( ((_arr select _i) select 0) == _key ) exitWith 
{																																				
	_arr SET [_i, ""];																					
	_arr = _arr - [""];																				
		};							
	};																
_arr
};

ISSE_arr_equals = 
{														
	((format["%1", _this select 0]) == (format["%1", _this select 1])  )
};

ISSE_arr_getValue = 
{													
	private ["_c", "_arr", "_key"];										
	_arr = _this select 0;		
	_key = _this select 1;													
	
	for [{_c=0}, {_c < (count _arr)}, {_c=_c+1}] do 
	{																												
	
	if (((_arr select _c) select 0) == _key) exitWith 
	{																											
	((_arr select _c) select 1)																										
	    };		
	};
};

ISSE_arr_countMultiple = 
{									
	private ["_c", "_Farr", "_Fval", "_Fcount"];			
	_Farr   = _this select 0;													
	_Fval   = _this select 1;													
	_Fcount = 0;											
	
	for [{_c=0}, {_c < (count _Farr)}, {_c=_c+1}] do 
	{																			
		if ( (typeName (_Farr select _c)) == (typeName _Fval) ) then 
		{																											
		
		if ((_Farr select _c) == _Fval) then 
		{
			_Fcount = _Fcount + 1;
		};						
	};															
};		

_Fcount
};